package com.gadgets.cm01.role.service;

import com.gadgets.cm01.role.dto.RoleOperDTO;
import com.gadgets.cm01.role.dto.RoleQueryDTO;
import com.gadgets.cm01.role.pojo.Role;
import com.gadgets.framework.common.dto.Pagination;
import com.gadgets.framework.common.exception.GadgetsServiceException;

import java.util.List;

/**
 * @author UncleXiu
 * @version V1.0.0
 * @data 2020-10-10
 * 
 */
public interface IRoleManagerService {

    /**
     * 新增角色信息
     * @param roleInfo                      角色信息
     * @return                              新增数量
     * @throws GadgetsServiceException      服务异常信息
     */
    int addRoleInfo(Role roleInfo) throws GadgetsServiceException;

    /**
     * 更新角色信息
     * @param roleInfo                      角色信息
     * @return                              更新条数
     * @throws GadgetsServiceException      服务异常
     */
    int editRoleInfo(RoleOperDTO roleInfo) throws GadgetsServiceException;

    /**
     * 删除已废弃角色信息
     * @param deleteId                      删除记录ID
     * @return                              更新条数
     * @throws GadgetsServiceException      服务异常
     */
    int deleteRoleInfo(Long[] deleteId) throws GadgetsServiceException;

    /**
     * 分页查询角色信息
     * @param queryDTO                      查询条件
     * @param pagination                    分页条件
     * @return                              查询结果
     * @throws GadgetsServiceException      服务异常
     */
    List<Role> queryRoleInfoByCondition(RoleQueryDTO queryDTO, Pagination pagination) throws GadgetsServiceException;

}
